package Thread.InnerClassThread;

/*
    匿名内部类方式实现线程的创建
        作用：
            简化代码
            把子类继承父类，重写父类方法，创建子类对象   合成一步完成
            把实现类实现接口，重写接口方法，创建实现类类对象   合成一步完成
    匿名内部类的最终产物：子类/实现类对象，且这个类没有名字

    格式：
        new 父类/接口(){
            重写父类/接口方法
        }
*/
public class InnerClassThread {
    public static void main(String[] args) {
        //匿名内部类创建线程
        new Thread() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println(Thread.currentThread().getName()+"hello");
                }
            }
        }.start();

        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println(Thread.currentThread().getName()+"world");
                }
            }
        };

        new Thread(runnable).start();

        //runnable接口的简化写法
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println(Thread.currentThread().getName()+"简化写法");
                }
            }
        }).start();

    }
}
